package io.github.memfis19.cadar.internal.ui.list.adapter.holder;
import android.os.Handler;
import android.support.v4.util.Pair;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.format.DateFormat;
import android.view.View;
import android.widget.TextView;
import java.util.Calendar;
import io.github.memfis19.cadar.R;
import io.github.memfis19.cadar.internal.ui.list.adapter.decorator.WeekDecorator;
import io.github.memfis19.cadar.internal.ui.list.adapter.decorator.factory.WeekDecoratorFactory;
/**
* Created by memfis on 9/6/16.
*/
public class WeekHolder extends ListHolder {
private View itemView;
private TextView title;
private Handler backgroundHandler;
private Handler uiHandler;
private final String DATE_FORMAT = "dd MMM";
private WeekDecorator weekDecorator;
public WeekHolder(View itemView,
Handler backgroundHandler,
Handler uiHandler,
WeekDecoratorFactory weekDecoratorFactory) {
super(itemView);
this.itemView = itemView;
this.backgroundHandler = backgroundHandler;
this.uiHandler = uiHandler;
if (weekDecoratorFactory != null) {
weekDecorator = weekDecoratorFactory.createWeekDecorator(itemView);
} else {
title = (TextView) itemView.findViewById(R.id.week_title);
}
}
public void bindView(final Pair<Calendar, Calendar> period) {
if (weekDecorator != null) {
weekDecorator.onBindWeekView(itemView, period);
} else {
backgroundHandler.post(new Runnable() {
@Override
public void run() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(title.getContext().getString(R.string.calendar_week));
stringBuilder.append(" ");
stringBuilder.append(period.first.get(Calendar.WEEK_OF_YEAR));
stringBuilder.append(", ");
stringBuilder.append(DateFormat.format(DATE_FORMAT, period.first));
stringBuilder.append(" - ");
stringBuilder.append(DateFormat.format(DATE_FORMAT, period.second));
final Spannable date = new SpannableString(stringBuilder.toString());
uiHandler.post(new Runnable() {
@Override
public void run() {
title.setText(date);
}
});
}
});
}
}
}